// ProjectName: go-learn-demo
// PackageName: ginybxb
// Description:
// Author: hy.bai
// Date: 2025-08-02 21:38

package ginybxb

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"log/slog"
)

func TestUrlParams() {
	// 1.初始Gin实例对象
	r := gin.New(func(r *gin.Engine) {
		r.Use(gin.Recovery()) // 全局处理Panic异常
	})
	// 2.注册请求地址和Handler方法
	// 访问地址是:http://127.0.0.1:8080/user?id=12345
	r.GET("/user", func(context *gin.Context) {
		// 通过Query方法获取URL参数：/user?id=12345
		// userId := context.Query("id")
		// 获取URL参数，如果没有，可以指定默认值
		userId := context.DefaultQuery("id", "1") // 如果获取不到id参数，则是1
		data := map[string]any{
			"id": fmt.Sprintf("你访问的用户ID是：%s", userId),
		}
		ginHandleResp(context, 2000, "操作成功", data)
	})

	// 3.启动服务
	addr := ":8080"
	slog.Info("服务运行地址是:http://127.0.0.1" + addr)
	if err := r.Run(addr); err != nil {
		return
	}
}
